using B.S.Medical.ErrorCode;
using MediatR;

namespace B.S.Medical.Api.Read.Application.Command.Payment
{
    /// <summary>
    /// 查询患者待缴费项目命令
    /// </summary>
    public class GetPatientPaymentItemsCommand : IRequest<ApiResult<PatientPaymentInfoDto>>
    {
        /// <summary>
        /// 患者ID
        /// </summary>
        public int PatientId { get; set; }
    }
    
    /// <summary>
    /// 患者支付信息DTO
    /// </summary>
    public class PatientPaymentInfoDto
    {
        /// <summary>
        /// 患者ID
        /// </summary>
        public int PatientId { get; set; }
        
        /// <summary>
        /// 患者姓名
        /// </summary>
        public string PatientName { get; set; }
        
        /// <summary>
        /// 身份证号
        /// </summary>
        public string IdCard { get; set; }
        
        /// <summary>
        /// 患者手机号
        /// </summary>
        public string PhoneNumber { get; set; }
        
        /// <summary>
        /// 卡内余额
        /// </summary>
        public decimal CardBalance { get; set; }
        
        /// <summary>
        /// 待缴费项目列表
        /// </summary>
        public List<PaymentItemDto> PaymentItems { get; set; } = new List<PaymentItemDto>();
    }
    
    /// <summary>
    /// 缴费项目DTO
    /// </summary>
    public class PaymentItemDto
    {
        /// <summary>
        /// 项目ID
        /// </summary>
        public int Id { get; set; }
        
        /// <summary>
        /// 项目名称
        /// </summary>
        public string ItemName { get; set; }
        
        /// <summary>
        /// 科室名称
        /// </summary>
        public string DepartmentName { get; set; }
        
        /// <summary>
        /// 医生名称
        /// </summary>
        public string DoctorName { get; set; }
        
        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }
        
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedTime { get; set; }
    }
} 